정보처리기사 실기 2024년 2회

정보처리기사 실기


1. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Main {
	public static void check(int[] x, int[] y) {
		if(x==y) System.out.print("O");
		else System.out.print("N");
	}
	public static void main(String[] args) {
		int a[] = new int[] {1, 2, 3, 4};
		int b[] = new int[] {1, 2, 3, 4};
		int c[] = new int[] {1, 2, 3};
		check(a, b);
		check(b, c);
		check(a, c);
	}
}

2. 다음 내용이 설명하는 용어를 쓰시오.
시스템의 성능을 향상시키고 개발 및 운영의 편의성 등을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위

3. 다음의 조건을 만족하도록 괄호에 적합한 명령을 넣어 SQL문을 완성하시오.
[테이블]
사원 [사원번호(PK), 이름, 나이, 부서]
부서 [사원번호(PK), 이름, 주소, 나이]

① 신입사원이 들어와서 부서 테이블에 새로운 사람을 추가
INSERT INTO 부서 (사원번호, 이름, 주소, 나이) (  ①  ) (240728, '홍길동', '서울', 30);

② 부서 테이블에서 추가한 사원을 검색한 후 사원 테이블에 추가
INSERT INTO 사원 (사원번호, 이름, 나이, 부서)
(  ②  ) 사원번호, 이름, 나이, ‘영업’ FROM 부서 WHERE 이름 = '홍길동';

③ 전체 사원 테이블 조회
SELECT * (  ③  ) 사원;
 
④ 사원의 퇴사로 인해 부서에 해당하는 값을 '퇴사'로 변경
UPDATE 사원 (  ④  ) 부서 = '퇴사' WHERE 사원번호 = 240728;

4. 다음 테이블에서 카디널리티(Cardinality)와 디그리(Degree)를 구하시오.

5. 다음 설명에 해당하는 프로토콜을 쓰시오.
- Network layer에서 IP패킷을 암호화하고 인증하는 등의 보안을 위한 표준이다. 
- 기업에서 사설 인터넷망으로 사용할 수 있는 VPN을 구현하는데 사용되는 프로토콜이다.
- AH(Authentication Header)와 ESP(Encapsulating Security Payload)라는 두 가지 보안 프로토콜을 사용한다.

6. 모듈에 대한 다음 설명에 해당하는 응집도(Cohesion)를 에서 찾아 쓰시오.
실행 순서가 밀접한 관계를 갖는 기능을 모아 모듈로 구성하며, 한 모듈 내부의 한 기능 요소에 의한 출력 자료가 다음 기능 원소의 입력 자료로써 제공되는 형태이다.
위키해설
클릭하면 보입니다.
  응집도
7. 디자인 패턴에 대한 다음 설명에서 알맞은 용어를 에서 찾아 쓰시오.
- 컬렉션 객체의 내부 구조를 노출하지 않고 순차적으로 접근할 수 있게 하는 패턴이다.
- 객체의 내부 표현 방식에 독립적으로 요소에 접근할 수 있다.
- 반복 프로세스를 캡슐화하여 클라이언트 코드에서는 컬렉션의 구체적인 구현에 종속되지 않게 한다.
- Cursor라고도 한다.

8. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
def cnt(str, p):
    result = 0
    for i in range(len(str)):
        sub = str[i:i+len(p)]
        if sub == p:
            result += 1
    return result

str = "abdcabcabca"
p1 = "ca"
p2 = "ab“

print(f'ab{cnt(str, p1)} ca{cnt(str, p2)}')

9. 데이터 교환 방식에 대한 다음 설명에서 괄호(①, ②)에 들어갈 알맞은 용어를 쓰시오.
(  ①  ) : 연결형 통신에서 주로 사용되는 방식으로, 출발지와 목적지의 전송 경로를 미리 연결하여 논리적으로 고정한 후 통신하는 방식이다.
(  ②  ) : 비연결형 통신에서 주로 사용되는 방식으로, 사전에 접속 절차를 수행하지 않고 헤더에 출발지에서 목적지까지의 경로 지정을 위한 충분한 정보를 붙여서 개별적으로 전달하는 방식이다.

10. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include 

void swap() {
	int a = 11;
	int b = 19;
	int t = a;
	a = b;
	b = t;
}

int main() {
	int a = 11;
	int b = 19;
	swap();
	switch(a) {
		case 1:
			b += 1;
		case 11:
			b += 2;
		default:
			b += 3;
			break;
	}
	printf("%d", a-b);
}

11. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include 
#include 

void func(char *d, char *s) {
	int sum = 0;
	while (*s) {
		*d = *s;
		d++;
		s++;
	}
	*d = '';
}

int main() {
	char* str1 = "first";
	char str2[50] = "teststring";
	int result = 0;
	func(str2, str1);

	for (int i = 0; str2[i] != ''; i++) {
		result += i;
	}
	printf("%d", result);
	return 0;
}

12. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
interface Number {
	int sum(int[] a, boolean odd);
}

public class Main {
	public static void main(String[] args) {
		int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
		OENumber OE = new OENumber();
		System.out.print(OE.sum(a, true) + ", " + OE.sum(a, false));
	}
}
class OENumber implements Number {
	public int sum(int[] a, boolean odd) {
		int result = 0;
		for(int i=0; i < a.length; i++) {
			if((odd && a[i] % 2 != 0) || (!odd && a[i] % 2 == 0))
				result += a[i];
		}		
		return result;
	}	
}

13. 다음 라우터 A에서 라우터 F까지 경로를 설정하기 위해 RIP 방식을 사용한다고 할 때, 라우터가 지나가는 경로를 순서대로 쓰시오.(단, 간선 위의 숫자는 라우터 간의 거리를 의미한다.)
답 : A ➝

14. 아래 설명하는 내용을 확인하여 알맞는 알고리즘을 작성하시오.
- 대칭키 알고리즘으로 1997년 NIST(미국 국립기술표준원)에서 DES를 대체하기 위해 생성되었다.
- 128비트, 192비트 또는 256비트의 가변 키 크기와 128비트의 고정 블록 크기를 사용한다.
- 높은 안전성과 효율성, 속도 등으로 인해 DES 대신 전 세계적으로 많이 사용되고 있다.

15. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include 

int main() {
	int arr[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
	int* parr[2] = {arr[1], arr[2]};
	printf("%d", parr[1][1] + *(parr[1]+2) + **parr);

	return 0;
}

16. 아래의 표를 확인하여 SRT 스케줄링의 평균 대기시간을 계산하여 작성하시오.

17. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Main {
	public static String rf(String str, int index, boolean[] seen) {
		if(index < 0) return "";
		char c = str.charAt(index);
		String result = rf(str, index-1, seen);
		if(!seen[c]) {
			seen[c] = true;
			return c + result;
		}
		return result;
	}
	public static void main(String[] args) {
		String str = "abacabcd";
		int length = str.length();
		boolean[] seen = new boolean[256];
		System.out.print(rf(str, length-1, seen));
	}
}

18. 소프트웨어 설계에 대한 다음 설명에서 괄호에 들어갈 알맞은 용어를 쓰시오.
- 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해, 제어를 통신하거나 제어 요소를 전달하는 결합도이다.
- 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우에 발생한다.

답 : (                   )  Coupling

19. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include 

struct node {
	int n1;
	struct node *n2;
};

int main() {
	struct node a = {10, 0};
	struct node b = {20, 0};
	struct node c = {30, 0};

	struct node *head = &a;
	a.n2 = &b;
	b.n2 = &c;

	printf("%d", head -> n2 -> n1);

        return 0;
}

20. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Main {
	public static void main(String[] args) {
		String str = "ITISTESTSTRING";
		String[] result = str.split("T");
		System.out.print(result[3]);
	}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
채점하기
hide
reset
타이머

모든 문제들의 저작권은 원저작권자에게 있습니다. 본 사이트는 웹상에 공개되어 있는 문제만 모아서 보여드립니다.
저작권 안내   데이터 보호 안내   제휴 문의

copyright 2024 뉴비티::새로운 CBT 시스템 - newbt.kr